package ch.jamme.conf;

/**
 * Defines the actual class that needs to be introspected when a given object is going to be marshalled. 
 * This strategy is useful when you need to marshall proxy objects for example because they have been fetched with an O/R mapping tool.
 * @author Mario Fusco
 */
public interface ClassNormalizer {

	/**
	 * Normalize the Class (i.e. the actual Class instead of the proxied one) of given object before to marshall it
	 * @param object The object to be normalized
	 * @return The normalized Class
	 */
	Class<?> getNormalizedClass(Object object);
}
